/*
 * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package java.lang;

/**
 * <code>Runnable</code> 接口应该由那些其实例打算由线程执行的任何类来实现。
 * 该类必须定义一个名为 <code>run</code> 的无参数方法。
 * <p>
 * 此接口旨在为希望在活动时执行代码的对象提供通用协议。例如，
 * <code>Runnable</code> 由 <code>Thread</code> 类实现。
 * 活动简单地意味着线程已经启动且尚未停止。
 * <p>
 * 此外，<code>Runnable</code> 为类提供了在不继承 <code>Thread</code> 的情况下保持活动的方法。
 * 实现 <code>Runnable</code> 的类可以通过实例化一个 <code>Thread</code> 实例并将自身作为目标传入，
 * 在不继承 <code>Thread</code> 的情况下运行。在大多数情况下，如果您只打算重写 <code>run()</code>
 * 方法而不重写其他 <code>Thread</code> 方法，则应该使用 <code>Runnable</code> 接口。
 * 这很重要，因为除非程序员打算修改或增强类的基本行为，否则不应该继承类。
 *
 * @author  Arthur van Hoff
 * @see     java.lang.Thread
 * @see     java.util.concurrent.Callable
 * @since   JDK1.0
 */
@FunctionalInterface
public interface Runnable {
    /**
     * 当实现接口 <code>Runnable</code> 的对象被用来创建线程时，
     * 启动该线程将导致在那个单独执行的线程中调用对象的 <code>run</code> 方法。
     * <p>
     * 方法 <code>run</code> 的一般约定是它可以采取任何行动。
     *
     * @see     java.lang.Thread#run()
     */
    public abstract void run();
}
